import random


# 定义一个Game类
class Game(object):
    # 定义类属性用于记录游戏的历史最高分
    top_score = 0

    # 定义最高分玩家姓名

    def __init__(self, player_name):
        """
        初始化对象，添加玩家姓名对象属性
        :param player_name:
        """
        self.player_name = player_name

    @staticmethod
    def show_help():
        print("你在玩一个很危险的游戏！！！")

    @classmethod
    def show_top_score(cls):
        """
        定义类方法用于获取历史最高分
        :return:
        """
        print(f"当前历史最高分为：{cls.top_score}")

    def start_game(self):
        """
        定义实例方法用于实现游戏过程
        :return:
        """
        print(f"玩家{self.player_name}请开始游戏！！！")
        score = random.randint(1, 100)
        print(f"玩家{self.player_name}您的得分为：{score}")
        # 当通过对象获取类属性时，类属性就转换为对象属性
        if score > self.top_score:
            print(f"恭喜{self.player_name}获得当前最高分！！！")
            # self.top_score = score
            # 在对象方法中可以通过self.__class__.属性名获取当前的类属性并修改值
            self.__class__.top_score = score


if __name__ == '__main__':
    player1 = Game("小明")
    player2 = Game("小红")
    player1.start_game()
    player2.start_game()
    player1.start_game()
    player1.start_game()
    player2.start_game()
    player1.start_game()
    player1.start_game()
    player2.start_game()
    player1.start_game()